classdef QuasiNewtenStep < Step
    properties 
    end
    methods

        %% Checked but need to recheck
        function Step = CalculateStep(obj,Grad, eigVals,eigVects, Dims)
            Step = zeros(size(Grad));
            for i = 1: Dims
                Grad_ = eigVects(:,i) * Grad';
                Grad_ = Grad_/eigVals(i);
                Step = Step - Grad_ * eigVects(:,i);    
            end
        end 
    
        %% Checked but need to improve organization of the program
        function Step = CalculateQuasiNewtenHessianStepVector(obj, Grad, H)
            Step  = - H^-1 * Grad;
        end 
    end
end

